package com.example.demo03_mvm.utils;

import android.text.TextUtils;
import android.util.Log;

import com.alibaba.android.arouter.launcher.ARouter;
import com.example.demo03_mvm.App;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class LoginAspectJ {
    /**
     * 切面处理的点
     * * * (..) 可以处理所有的方法
     */
    @Pointcut("execution(@com.example.demo03_mvm.utils.LoginCheck * *(..))")
    public void LoginCheck(){
    }

    /*
     * 逻辑处理：
     */
    @Around("LoginCheck()")
    public void aroundLoginCheck(ProceedingJoinPoint joinPoint) throws Throwable {
        String token = ACache.get(App.getContext()).getAsString("token");
        if(TextUtils.isEmpty(token)){
            Log.d("===", "没登陆: ");
            ARouter.getInstance().build("/app/LoginActivity").navigation();
        }else{
            Log.d("===", "登陆: ");
            joinPoint.proceed();//继续执行后续操作
        }
    }
}
